package com.jumi.microservice.service;

import com.jumi.microservice.common.base.dto.BaseResponse;
import com.jumi.microservice.dto.PayNotifyRequest;
import com.jumi.microservice.dto.PaymentRequest;
import com.jumi.microservice.dto.PaymentResponse;
import com.jumi.microservice.dto.RefundRequest;

/**
 * @author Dirk
 * @Date 2020-07-10 14:54
 */
public interface IPayService {

    /**
     * 执行支付
     *
     * @param request
     * @return
     */
    BaseResponse execPay(PaymentRequest request);

    /**
     * 支付结果回调
     *
     * @param request
     * @return
     */
    BaseResponse paymentNotify(PayNotifyRequest request);

    /**
     * 退款
     *
     * @param refundRequest
     * @return
     */
    PaymentResponse refund(RefundRequest refundRequest);
}
